﻿using System;
using System.IO;

namespace Dexter.Storage {
	public interface IStorageFile {
		/// <summary>
		/// 	Gets the path.
		/// </summary>
		/// <returns></returns>
		string GetPath ( );

		/// <summary>
		/// 	Gets the name.
		/// </summary>
		/// <returns></returns>
		string GetName ( );

		/// <summary>
		/// 	Gets the size.
		/// </summary>
		/// <returns></returns>
		long GetSize ( );

		/// <summary>
		/// 	Gets the last updated.
		/// </summary>
		/// <returns></returns>
		DateTime GetLastUpdated ( );

		/// <summary>
		/// Gets the type of the file.
		/// </summary>
		/// <returns></returns>
		string GetFileType ( );

		/// <summary>
		/// 	Creates a stream for reading from the file.
		/// </summary>
		Stream OpenRead ( );

		/// <summary>
		/// 	Creates a stream for writing to the file.
		/// </summary>
		Stream OpenWrite ( );
	}
}